package com.hd.sup.modules.vehicle.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hd.sup.modules.vehicle.model.VehicleDailyStatis;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author chentl123
 * @since 2020-12-28
 */
public interface VehicleDailyStatisMapper extends BaseMapper<VehicleDailyStatis> {

    /**
     * @return com.hd.sup.modules.vehicle.model.VehicleDailyStatis
     * @author chentl
     * @description 根据当前日期获取当天所有车辆维度统计信息
     * @date 2020/12/28 3:47 下午
     * @params [currentDateStr, deptIds]
     */
    VehicleDailyStatis getDailyVehicleSumData(@Param("currentDateStr") String currentDateStr, @Param("deptIds") List<String> deptIds);

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 获取车辆上线趋势数据
     * @date 2020/12/29 9:45 上午
     * @params [dateRange, startDateStr, endDateStr, transType,deptIds]
     */
    List<Map<String, Object>> getGoOnlineTrendData(@Param("dateRange") String dateRange, @Param("startDateStr") String startDateStr, @Param("endDateStr") String endDateStr, @Param("transType") String transType, @Param("deptIds") List<String> deptIds);

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询报警企业车辆数TOP5
     * @date 2020/12/29 3:29 下午
     * @params [deptIds]
     */
    List<Map<String, Object>> getVehicleTop5(@Param("deptIds") List<String> deptIds);

    /**
     * @return java.util.List<com.hd.sup.modules.vehicle.model.VehicleDailyStatis>
     * @author chentl
     * @description 获取当天统计数据
     * @date 2021/1/11 1:46 下午
     * @params [currentDate]
     */
    List<VehicleDailyStatis> getTodayStatisData(@Param("currentDate") String currentDate);

    /**
     * @return void
     * @author chentl
     * @description 根据 vehicle_type + enterprise_no + statis_date 更新或插入车辆统计数据
     * @date 2021/1/11 1:52 下午
     * @params [vehicleDailyStatis]
     */
    void refreshVehicleDailyStatis(@Param("vehicleDailyStatis") VehicleDailyStatis vehicleDailyStatis);

    /**
     * @return java.util.List<com.hd.sup.modules.vehicle.model.VehicleDailyStatis>
     * @author chentl
     * @description 获取车辆上线总数总数
     * @date 2021/1/16 4:53 下午
     * @params [param, deptIds]
     */
    List<VehicleDailyStatis> getDailyVehicleNumData(@Param("param") VehicleDailyStatis param, @Param("deptIds") List<String> deptIds);
}
